using System.Collections;
using System.Collections.Generic;
using Game;
using GameStates;
using UnityEngine;

/**
 * 测试登录面板控制器 (TestUILoginPanel)
 * 
 * 功能说明：
 * - 用于测试Login状态的UI控制器
 * - 提供登录按钮，模拟登录成功流程
 * - 点击登录按钮后切换到主界面状态
 * 
 * 设计说明：
 * - 继承自MonoBehaviour，作为UI控制器
 * - 使用Unity UI系统处理按钮点击
 * - 通过状态机实现状态切换
 * 
 * 使用场景：
 * - 在Login场景中使用
 * - 模拟真实的登录流程
 * - 测试状态机切换功能
 */
namespace Test
{
    public class UILoginPanel : MonoBehaviour
    {
        /**
         * Unity生命周期：Start方法
         * 
         * 功能：
         * - 初始化登录面板
         * - 设置UI组件状态
         * - 准备接收用户输入
         */
        void Start()
        {
            Debug.Log("TestUILoginPanel: 登录面板初始化完成");

            // 在这里可以：
            // 1. 初始化登录表单
            // 2. 设置默认用户名密码
            // 3. 检查记住登录状态
        }

        /**
         * Unity生命周期：Update方法
         */
        void Update()
        {
        }

        /**
         * 登录按钮点击事件处理
         * 
         * 功能：
         * - 模拟登录成功流程
         * 
         * 调用方式：
         * - 在Unity UI Button组件的OnClick事件中调用
         * - 通过Inspector面板绑定
         * 
         * 实际项目中可以扩展：
         * - 验证用户名密码
         * - 连接服务器验证
         * - 保存登录信息
         * - 处理登录失败
         */
        public void OnClickLogin()
        {
            Debug.Log("TestUILoginPanel: 用户点击登录按钮");

            // 模拟登录成功，切换到主界面状态
            // 在实际项目中，这里应该：
            // 1. 验证用户输入
            // 2. 发送登录请求到服务器
            // 3. 等待服务器响应
            // 4. 根据响应结果决定是否切换状态
            GameApp.Instance.StateMachine.ChangeState(new GameStateMain());

            Debug.Log("TestUILoginPanel: 登录成功，切换到主界面");
        }
    }
}
